package ar.uade.distribuidas.tpo.dba.dominio;

import javax.persistence.*;

import ar.uade.distribuidas.tpo.base.dominiodto.ProveedorDTO;

@Entity
@Table(name = "proveedores")
public class Proveedor {
	@Id
	private long cuil;
	@Column(name = "razonSocial")
	private String nombre;

	public ProveedorDTO toDTO() {
		ProveedorDTO dto = new ProveedorDTO();

		dto.setCuil(this.cuil);
		dto.setNombre(this.nombre);

		return dto;
	}

	public static Proveedor fromDTO(ProveedorDTO dto) {
		Proveedor p = new Proveedor();

		p.setCuil(dto.getCuil());
		p.setNombre(dto.getNombre());

		return p;
	}

	public long getCuil() {
		return cuil;
	}

	public void setCuil(long cuil) {
		this.cuil = cuil;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + (int) (cuil ^ (cuil >>> 32));
		result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Proveedor other = (Proveedor) obj;
		if (cuil != other.cuil)
			return false;
		if (nombre == null) {
			if (other.nombre != null)
				return false;
		} else if (!nombre.equals(other.nombre))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Proveedor [cuil=" + cuil + ", nombre=" + nombre + "]";
	}

}
